redis学习-基础入门

查询资料没有找到 redis 从入门到java中的应用,
也没有到框架 spring,springboot中的详细介绍,故自己整理,有错误的地方欢迎指出

一 : Redis 安装

0. Redis 安装

mac : brew cask install redis;
centos : apt-get install redis;
解压版安装 : 
    1. 将下载好的安装包放置到linux目录下
    2. 解压 : tar -axvf redis-4.0.2.tar.gz  
        1. 进入 redis-4.0.2,
            1. 输入 make;
            2. 完成后输入make install;
            3. sudo make install
    3. 进入 src目录 
        1. cp redis-server /usr/local/bin/;
        2. cp redis-cli /usr/local/bin/ 在任意目录启动
修改 redis.conf 配置文件
    daemonize:如需要在后台运行,把该项的值改为yes
    pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址
    bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项
    port:监听端口,默认为6379
    timeout:设置客户端连接时的超时时间,单位为秒
    loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice
    logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上
    database:设置数据库的个数,默认使用的数据库是0
    save:设置redis进行数据库镜像的频率
    rdbcompression:在进行镜像备份时,是否进行压缩
    dbfilename:镜像备份文件的文件名
    dir:数据库镜像备份的文件放置的路径
    slaveof:设置该数据库为其他数据库的从数据库
    masterauth:当主数据库连接需要密码验证时,在这里设定
    requirepass:设置客户端连接后进行任何其他指定前需要使用的密码
    maxclients:限制同时连接的客户端数量
    maxmemory:设置redis能够使用的最大内存
    appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态
    appendfsync:设置appendonly.aof文件进行同步的频率
    vm_enabled:是否开启虚拟内存支持
    vm_swap_file:设置虚拟内存的交换文件的路径
    vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
    vm_page_size:设置虚拟内存页的大小
    vm_pages:设置交换文件的总的page数量
    vm_max_thrrads:设置vm IO同时使用的线程数量

1. redis 是什么

基础 : redis 是一个 key-value存储系统
数据结构 : lists(列表),sets(集合),ordered sets(有序集合),hashes(哈希),string(字符串)
redis常被称作是一款数据结构服务器,对这些数据类型的操作是原子性,
    例如 : 1.对字符串进行附加操作(append);2.递增哈希中的值;3.向列表中添加元素;4.计算集合的并集,交集,差集

2. redis 优点

性能极高 : redis能支持超过 100K+ 每秒的读写频率
丰富的数据类型
原子操作 : Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行
丰富的特性 : Redis还支持 publish/subscribe,通知,key过期等特性

3. redis 主要文件

服务端 : src/redis-server
客户端 : src/redis-cli
默认配置文件 : redis.conf
PS : 可以将可执行文件放置到$path换将目录下,便于以后执行程序时可以不输入完整的路径
    cp redis-server /usr/local/bin/
    cp resdi-cli /usr/local/bin/
启动redis : redis-server (src目录下)   mac : brew service start redis
查看redis : 
    ps -ef|grep redis
    netstat -antp|grep 6379   通过端口号检查Redis服务器状态
启动 Redis-cli : redis-cli

二 : Redis 数据

Redis keys 是采用二进制安全,我们可以使用任何的二进制序列作为重点

1. redis strings

set命令创建strings : set mykey somevalue    ps:set命令将取代现有的任何已经存在的key
    set mykey newval nx : 当mykey存在时不会保存(新建的意思)
    set mykey newval xx : 当mykey不存在是不会保存(替换的意思)
get命令获取strings : get mykey

2. 加法器

set counter 100
incr counter : 101
incrby counter 20 : 121

3. 减法器

set counter 100
decr counter : 99
decr counter 20 : 79

4.Redis 可以使用 mset 和 mget 操作多个值,使用mget Redis返回一个数组

mset a 10 b 20 c 30
mget a b

5. Redis lists

Redis 列表是简单的字符串列表,按照插入顺序排序
rpush mylist 1
rpush mylist b
lpush mylist c
lrange mylist 0 -1 : lrange 利用了两个检索值,0表示list的开头第一个;-1标示list的倒数第一个

pop : 取出list元素,可以选择不同的方向进行取出元素,返回值为取出的元素
del : 删除key

6. Redis hashes

hashes是字符串字段和字符串值之间的映射,展现出对象的完美数据类型
hmset : 设置一个多余的hash表
hget : 获取指定的单域
hgetall : 获取指定key的所有信息

7. Redis 无序集合

redis集合是一个无序的字符串集合
sadd myset 1 2 3 : sadd产生一个无序集合,返回集合的元素个数
smembers : 查看集合 smembers myset
sismember : 用于查看集合是否存在,匹配项包括集合名和元素个数,匹配成功返回1,匹配失败返回0
sismember myset 3
sismember myset 30
sismember mys 3

8. Redis 有序集合

zadd与sadd类似,但是在元素之前多了一个参数,这个参数便是用于排序的,形成一个有序的集合
    zadd hackes 1940 "alan kay"
    zadd hacker 1999 "wodh"
zrange hackes : 查看正序集合
zrevrange hacker : 查看反序集合
zrange hacker 0 -1 withscores : 使用withscores参数返回记录值    

三 : Redis 系统管理

1. 适合全体类型的常用命令 : (启动redis服务,redis-cli)

1. exists and del : 
    exists key : 判断一个key是否存在,存在返回1
    del key1 key2 : 删除某个key或者一系列key(成功返回1)
2. type and keys
    type key : 返回某个key元素的数据类型(none : 不存在,string : 字符串...list,set,zset,hash),key不存在返回空
    keys key-pattern : 返回匹配的key的列表(keys foo*:查找foo开头的keys)
3. randomkey and clear
    randomkey : 随机获取一个已经存在的key,如果当前数据为空,则返回空字符串
    clear : 清除界面  不是清空所有的key
4. rename and renamenx
    rename oldname newname : 改key的名字,新键如果存在则覆盖
    renamenx oldname newname : 更改key的名字,如果newname存在,则更新失败
5. dbsize
    dbsize : 返回当前数据库的key总数

2. Redis 时间相关的命令

1. 限定key生存时间 : 这是一个无视数据类型的命令,对于临时存储有用处,避免进行大量的del操作
    expire : 设置某个key的过期时间(秒) : expire bruce 1000 : 设置bruce这个key1000s后系统自动删除
        如果在还没过期的时候,对值进行了改变,那么那个值会清空
2. 查询key剩余生存时间
    set 限时 : set key 100 ex 30
    ttl : 查看某个key还有多长时间过期,返回s
3. 清除key
    flushdb : 清空当前数据库中的所有键
    flushall : 清空所有数据库中得所有键

3. Redis 设置相关命令 : Redis有其配置文件,可以通过client-command窗口查看更改

1. config get and config set
    config get : 用来读取运行Redis服务器的配置参数
    config set : 用于更改运行Redis服务器的配置参数
        auth : 认证密码
        config get requirepass : 查看密码
        config set requirepass 123 : 设置密码
        config get requirepass : 报错
        auth 123;
        config get requirepass;

4. 查询信息

info [section]: 查询Redis相关信息.INFO命令可以查询Redis几乎所有的信息
    server : Redis serve的常规信息
    clients : Client的链接选项
    memory : 存储占用相关信息
    persistence: RDB and AOF 相关信息
    stats : 常规统计
    replication : Master/slave 请求信息
    cpu : CPU 占用信息统计
    cluster : Redis集群信息
    keyspace : 数据库信息统计
    all : 返回所有信息
    default : 返回常规设置信息

四. Redis 高级应用

1. 安全性 :

设置密码 : 
    config set requirepass "password"
    配置redis.conf中设置requirepass属性
输入认证方式 :
    redis-cli -a password : 登录时
    auth password : 登陆后 

2. 重启redis-server和redis-cli

重启 redis server : sudo service redis-server restart
进入 redis-cli 进行验证

五. 参考

1. [http://www.baid.com](http://www.baid.com "实验楼-redis基础")

郭鹏飞
12 声望3 粉丝

有志者事竟成,向着心中的目标(20K)努力